/**
 * @file
 * Vertex and edge class with a string as the data payload.
 */

#ifndef STRING_VERTEX_EDGE_H
#define STRING_VERTEX_EDGE_H

#include <iostream>
#include <string>
#include <map>

/**
 * Vertex and edge class with a string as the data payload.
 */
class StringVertexEdge
{
 public:
  StringVertexEdge(int id, std::string data); 
  void print() { std::cerr << "Id: " << id_ << " Data: " << data_ << "\n";}
  int get_int_value();
 friend bool operator==(StringVertexEdge &v1, StringVertexEdge &v2);
 private:
  int id_;
  std::string data_;
  static std::map<std::string, int> label_store;
  static int label_count;
};

#endif // STRING_VERTEX_EDGE_H
